package 结构器模式.组合模式;

import java.util.ArrayList;
import java.util.List;

/**
 * @Description 菜单类：属于树枝结点
 * @Author shallow
 * @Date 2023/3/6 13:36
 */

public class Menu extends MenuComponent{

    //菜单可以有多个子菜单或者子菜单项
    private List<MenuComponent> menuComponentList= new ArrayList<>();

    public Menu(String name,int level) {
        this.name=name;
        this.level = level;
    }

    @Override
    public void add(MenuComponent menuComponent) {
        menuComponentList.add(menuComponent);
    }

    @Override
    public void remove(MenuComponent menuComponent) {
        menuComponentList.remove(menuComponent);
    }

    @Override
    public MenuComponent getChild(int index) {
        return menuComponentList.get(index);
    }


    @Override
    public void printName() {
        for (int i = 0; i < level; i++) {
            System.out.print("--");
        }
        //打印菜单名称
        System.out.println("菜单名称:"+name);
        //打印子菜单名称
        for (MenuComponent menu : menuComponentList) {
            menu.printName();
        }
    }
}
